<?php

use Entities\Estoque;
//use Entities\Obras;
//use Entities\Materiais;

$xml = "";

$idMaterial = $_REQUEST['idMaterial'];
$propriedade = $_REQUEST['propriedade'];
$qtdEstoque = $_REQUEST['qtdEstoque'];
$qtdTranferir = $_REQUEST['qtdTransferir'];
$qtd = $qtdTranferir;
$qtdTranferida = 0;
$obraOrigem = $_REQUEST['obraOrigem'];
$obraDestino = $_REQUEST['obraDestino'];
$data = date('d/m/Y');

$dataEntrada = new DateTime();
list ($day, $month, $year) = explode("/",$data);
$dataEntrada->setDate($year, $month, $day);


$dql = "select e from Entities\Estoque e JOIN e.material m where m.id = :parametro and e.propriedade = :propriedade";

$q = $em->createQuery($dql);
$q->setParameter("parametro", $idMaterial);
echo "$propriedade - $idMaterial";
$q->setParameter("propriedade", $propriedade);
$itens = $q->getResult();

foreach ($itens as $item){
	echo "a";
	if($item->getQuantidade() < $qtdTranferir){
		$qtdTranferida += $item->getQuantidade();
		$qtdTranferir -= $item->getQuantidade();
		$item->setQuantidade(0);
	}else{
		$qtdTranferida += $qtdTranferir;
		$item->setQuantidade($item->getQuantidade() - $qtdTranferir);
		$qtdTranferir = 0;
	}
	
	$e = new Estoque();
	
	
	$o = $em->find("Entities\Obras", $obraDestino); 	
	if(empty($o)){
		$o = new Obras();
	}
	
	$m = $em->find("Entities\Materiais", $idMaterial);
	if(empty($m)){
		$m = new Materiais();
	}
	
	$e->setObra($o);
	$e->setMaterial($m);
	$e->setData($dataEntrada);
	$e->setQuantidade($qtd);
	$e->setPropriedade($propriedade);
	$em->persist($e);
	
	$em->persist($item);

	if($qtdTranferir == 0){
		break;
	}
}

try {
	$em->flush();
	$erro = 0;
} catch (Exception $e) {
	$erro = 1;
}
	

$xml .= "<erro>$erro</erro>";
echo $xml;